CxProlog - testes semanticos



QUEUE


queue(NONSENSE) ::: false.


queue(5) ::: false.


queue_new(X), queue(X) ::: true.


-----------------------------------


QUEUE_PUT


queue_new(X), queue_put(X, term) ::: true.


queue_new(X), queue_put(X, TERM) ::: true. // funcionalidade da versao futura


-----------------------------------


QUEUE_GET


queue_new(X), queue_put(X, term), queue_get(X, term) ::: true.


queue_new(X), queue_put(X, term1), queue_put(X, term2), queue_get(X, term1), queue_get(X, term2) ::: true.


queue_new(X), queue_get(X, term) ::: false.



-----------------------------------


QUEUE_NEW


queue_new(X) ::: true.



-----------------------------------


QUEUE_CLEAR


queue_new(X), queue_clear(X) ::: true.


queue_new(X), queue_clear(X), queue_get(X, term) ::: fail.

-----------------------------------


QUEUE_DELETE


queue_new(X), queue_delete(X) ::: true.


queue_new(X), queue_delete(X), queue_clear(X) ::: fail.

-----------------------------------



QUEUE_PEEK


queue_new(X), queue_put(X, term), queue_peek(X, term) ::: true.


queue_new(X), queue_peek(X, T) ::: false.


-----------------------------------


QUEUE_AS_LIST


queue_new(A), queue_put(A, term1), queue_put(A, term2), queue_as_list(A, [term1,term2] ::: true.
